<?php
//$outcom=Cmkdirs::advancedFwf('/a/root/abc/img/a.txt','aaa' );
// $outcom=Cmkdirs::advancedFwf( '/a/root/res.lrc.txt','aaa' ,__FILE__,"D:/" );
// $outcom=Cmkdirs::advancedFwf( '/a/root/res.lrc.txt','aaa' ,__FILE__ );
 //echo $outcom ? 'success' : 'failed';

class Cmkdirs{
    public function __construct(){}
	
	public function __destruct() {}
	
	//把一个或多个  /\ 替换成一个 /
	public static function  replace_backslash($s){
        return preg_replace('/\/{1,}/', '/', str_replace ('\\','/',  $s.'/'));	 
    }
	
	//通过数组一步一步的创建多个目录
	public static function  mkDirsByArray($matches,$__file__=__FILE__, $target = false ){
	    if($target==false){
	     $target = self::replace_backslash (dirname( $__file__).'/');	
	    }
	    $stauts= $target;
	    foreach($matches[1] as $v){
		$stauts=self::replace_backslash( $stauts.($v."/") );
            if(!file_exists($stauts) or !is_dir($stauts)){
			    echo($stauts."<br>");
			    $r=@mkdir($stauts,0777);
			    echo $r?"ok<br>":"error<br>";
	        }else{
				echo $stauts.': 已经存在<br>';
			}	
	    }
	return $stauts;
    }		
	
	/*创建目录高级
	@parm1 $comdir 完整的目录名
	@parm3 $target 目标盘符 
	*/
	public static function mkdir ($comdir,$__file__,$target= false ){
	    preg_match_all("/\/{1,}([^\/]{1,})/",$comdir,$ms);
	    return self::mkDirsByArray($ms,$__file__,$target);
    }
	
	/*写文件
	@parm1 $filename 文件名
	@parm2 $conntent 文件内容
	*/
	public static function fwf($filename,$conntent){  
	    $file=fopen($filename,"w+b");
	    $ret =fwrite($file,$conntent);
	    fclose($file);
	    return  $ret;
    }
	
	/*写文件高级
	@parm1 $filename 文件名
	@parm2 $conntent 文件内容
	@parm3 $target   目标盘符
	*/
	public static function advancedFwf($filename, $conntent ,$__file__=__FILE__,$target= false){  
         $dirpath = self::mkdir( dirname($filename) ,$__file__ ,$target );
		 
		 $filename = preg_replace('/.*?([^\/]*)$/','\\1',$filename);
		 return self::fwf($dirpath.$filename,$conntent);
    }

}
?>